Software applications may be difficult to monitor when they are distributed across various physical components. Further, individual components may not be instrumented and different components may be under the jurisdiction of different enterprise operations teams. Applications may also include multiple technologies. Although distributed applications may be heterogeneous, monitoring systems for distributed applications are often technology-specific (e.g., a certain system can monitor Java application components but not .NET application components). In addition, monitoring systems may negatively impact the performance of the distributed application being monitored. That is, in an attempt to monitor every transaction at the distributed application, a monitoring system may introduce significant processing and memory overhead, disrupting the operation or noticeably affecting the performance of the distributed application. Such a performance impact may be problematic in real-time, near real-time, or mission-critical distributed applications.